package com.tech.mapper;

import com.tech.repository.entity.Message;

import java.util.List;

public interface MessageDao {
	/**
	 * 通过ID查找留言
	 *
	 * @param id 要查找留言的所属ID
	 * @return 找到就返回，否则返回null
	 */
	Message getMessage(int id);

	/**
	 * 通过留言ID查找留言树上的第一条留言
	 *
	 * @param id 留言树上某一条留言的ID
	 * @return 这棵树上的所有留言
	 */
	List<Message> getRootMessages(int id);

	/**
	 * 获取所有留言
	 *
	 * @return 所有留言信息
	 */
	List<Message> getAllMessages();

	/**
	 * 添加新的留言信息
	 *
	 * @param message 新的留言信息
	 * @return 新留言所属ID
	 */
	int addMessage(Message message);

	/**
	 * 添加新的留言信息
	 *
	 * @param messageList 留言列表
	 * @return 影响的行数
	 */
	int[] addMessages(List<Message> messageList);

	/**
	 * 根据ID删除指定留言
	 *
	 * @param id 要删除留言的ID
	 * @return 是否删除成功，不存在时返回false
	 */
	boolean delMessage(int id);

	/**
	 * 删除指定用户的所有留言
	 *
	 * @param userId 用户ID
	 * @return 影响的行数
	 */
	int delUserMessage(int userId);

	/**
	 * 根据ID批量删除留言
	 *
	 * @param messagesList 要删除留言的ID列表
	 * @return 影响到的行数
	 */
	int[] delMessages(List<Integer> messagesList);

	/**
	 * 删除所有留言
	 *
	 * @return 如果留言数据改变就返回true
	 */
	boolean delAllMessages();
}
